<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <title>高德地图</title>
    <style>
        body { margin:0; padding:0; background: transparent !important; }
        #container { width:100%; height:100vh; position:relative; background: transparent !important; z-index:1; }
        .info { position:absolute; top:10px; right:10px; background:rgba(0,0,0,0.8); color:white; padding:10px; border-radius:5px; z-index:1000; font-size:12px; max-width:200px; }
        .amap-logo,.amap-copyright { display:none !important; }
    </style>
</head>
<body>
<div id='container'></div>
<div class='info' id='info'>右键点击地图选择位置</div>
<script type='text/javascript' src='https://webapi.amap.com/maps?v=1.4.15&key=" + MapConfig.AmapApiKey + @"'></script>
<script>
    var map = null;
    var markers = [];
    var tempMarker = null; // 临时定位标记
    var hasTempMarker = false; // 是否有临时标记的标志
    var isMapReady = false; // 地图是否准备就绪

    // 初始化地图
    function initMap() {
        try {
            map = new AMap.Map('container', {
                zoom: " + MapConfig.DefaultZoomLevel + @",
                center: [" + MapConfig.DefaultLongitude + @", " + MapConfig.DefaultLatitude + @"],
                mapStyle: 'amap://styles/normal',
                backgroundColor: 'transparent'
            });

            // 绑定地图事件
            map.on('click', function(e) {
                try {
                    var lnglat = e.lnglat;
                    document.getElementById('info').innerHTML = '经度: ' + lnglat.getLng().toFixed(6) + '<br>纬度: ' + lnglat.getLat().toFixed(6);

                    var messageData = {
                        type: 'mapClick',
                        longitude: lnglat.getLng(),
                        latitude: lnglat.getLat()
                    };
                    var message = JSON.stringify(messageData);
                    console.log('发送左键点击消息到C#:', message);

                    if (window.chrome && window.chrome.webview) {
                        window.chrome.webview.postMessage(message);
                    } else {
                        console.error('window.chrome.webview 不可用');
                    }
                } catch (error) {
                    console.error('左键点击处理失败:', error);
                }
            });

            // 右键点击事件
            map.on('rightclick', function(e) {
                try {
                    var lnglat = e.lnglat;
                    var longitude = lnglat.getLng();
                    var latitude = lnglat.getLat();

                    console.log('右键点击事件触发:', longitude, latitude);

                    // 清除之前的临时标记
                    if (tempMarker) {
                        tempMarker.setMap(null);
                        hasTempMarker = false;
                    }

                    // 创建新的定位标记（红色，表示未添加）
                    tempMarker = new AMap.Marker({
                        position: lnglat,
                        icon: new AMap.Icon({
                            size: new AMap.Size(16, 24),
                            image: 'https://webapi.amap.com/theme/v1.3/markers/n/mark_r.png', // 红色定位图标
                            imageSize: new AMap.Size(16, 24)
                        }),
                        offset: new AMap.Pixel(-8, -24)
                    });
                    tempMarker.setMap(map);
                    hasTempMarker = true;

                    // 更新信息显示
                    document.getElementById('info').innerHTML = '已选择位置:<br>经度: ' + longitude.toFixed(6) + '<br>纬度: ' + latitude.toFixed(6);

                    // 发送右键点击消息到C#
                    var messageData = {
                        type: 'mapRightClick',
                        longitude: longitude,
                        latitude: latitude
                    };
                    var message = JSON.stringify(messageData);
                    console.log('发送消息到C#:', message);

                    if (window.chrome && window.chrome.webview) {
                        window.chrome.webview.postMessage(message);
                    } else {
                        console.error('window.chrome.webview 不可用');
                    }
                } catch (error) {
                    console.error('右键点击处理失败:', error);
                }
            });

            // 地图加载完成
            map.on('complete', function() {
                console.log('地图加载完成事件触发');
                isMapReady = true;
                console.log('isMapReady设置为true');

                // 发送地图加载完成消息到C#
                try {
                    var messageData = { type: 'mapLoaded' };
                    var message = JSON.stringify(messageData);
                    console.log('发送地图加载完成消息到C#:', message);

                    if (window.chrome && window.chrome.webview) {
                        window.chrome.webview.postMessage(message);
                    } else {
                        console.error('window.chrome.webview 不可用');
                    }
                } catch (error) {
                    console.error('地图加载完成消息发送失败:', error);
                }
            });

            // 地图准备就绪事件
            map.on('ready', function() {
                console.log('地图准备就绪事件触发');
                isMapReady = true;
                console.log('isMapReady设置为true (ready事件)');
            });

            console.log('地图初始化成功，isMapReady初始值:', isMapReady);
        } catch (error) {
            console.error('地图初始化失败:', error);
        }
    }

    function addMarker(lnglat, title, content, siteType) {
        try {
            console.log('addMarker函数被调用，参数:', { lnglat, title, content, siteType });

            if (!map) {
                console.error('地图对象不存在');
                return 'error:map_not_exists';
            }

            if (!isMapReady) {
                console.error('地图未准备好，无法添加标记');
                return 'error:map_not_ready';
            }

            if (!lnglat || !Array.isArray(lnglat) || lnglat.length !== 2) {
                console.error('坐标参数无效:', lnglat);
                return 'error:invalid_coordinates';
            }

            console.log('开始创建标记...');

            // 创建标记
            var marker = new AMap.Marker({
                position: lnglat,
                title: title,
                icon: getMarkerIcon(siteType),
                offset: new AMap.Pixel(-12, -24) // 确保标记位置正确
            });

            console.log('标记创建成功，添加到地图...');

            // 将标记添加到地图
            marker.setMap(map);

            // 将标记添加到数组
            if (!markers) {
                markers = [];
            }
            markers.push(marker);

            console.log('标记已添加到地图和数组，当前标记数量:', markers.length);

            // 添加信息窗体
            var infoWindow = new AMap.InfoWindow({
                content: content,
                offset: new AMap.Pixel(0, -30)
            });

            marker.on('click', function() {
                infoWindow.open(map, marker.getPosition());
            });

            // 强制地图重绘
            map.setFitView();

            console.log('标记添加成功，返回success');
            return 'success';
        } catch (error) {
            console.error('添加标记失败:', error);
            return 'error:' + error.message;
        }
    }

    function getMarkerIcon(siteType) {
        try {
            console.log('获取标记图标，站点类型:', siteType);

            // 根据站点类型选择不同的图标颜色
            var iconUrl = 'https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png'; // 默认蓝色

            if (siteType === 'new') {
                iconUrl = 'https://webapi.amap.com/theme/v1.3/markers/n/mark_r.png'; // 红色，新添加的站点
                console.log('使用红色图标（新站点）');
            } else if (siteType === 'existing') {
                iconUrl = 'https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png'; // 蓝色，已存在的站点
                console.log('使用蓝色图标（已存在站点）');
            }

            var icon = new AMap.Icon({
                size: new AMap.Size(25, 34),
                image: iconUrl,
                imageSize: new AMap.Size(25, 34)
            });

            console.log('图标创建成功:', iconUrl);
            return icon;
        } catch (error) {
            console.error('创建图标失败:', error);
            // 返回默认图标
            return new AMap.Icon({
                size: new AMap.Size(25, 34),
                image: 'https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png',
                imageSize: new AMap.Size(25, 34)
            });
        }
    }

    function clearMarkers() {
        try {
            markers.forEach(function(m){ m.setMap(null); });
            markers = [];
            return 'success';
        } catch (error) {
            console.error('清除标记失败:', error);
            return 'error:' + error.message;
        }
    }

    function clearTempMarker() {
        try {
            if (tempMarker) {
                tempMarker.setMap(null);
                tempMarker = null;
                hasTempMarker = false;
                document.getElementById('info').innerHTML = '右键点击地图选择位置';
            }
            return 'success';
        } catch (error) {
            console.error('清除临时标记失败:', error);
            return 'error:' + error.message;
        }
    }

    // 页面加载完成后初始化地图
    window.onload = function() {
        console.log('页面加载完成，开始初始化地图...');
        initMap();
    };
</script>
</body>
</html>